﻿using System.Collections.Generic;
using Microsoft.SystemCenter.Orchestrator.Integration;

namespace SocialMediaIntegrationPack
{
    public class Body
    {
        public string Plain { get; set; }

        public string Parsed { get; set; }

        public string Rich { get; set; }
    }

    public class LikedBy
    {
        public int Count { get; set; }

        public List<object> Names { get; set; }
    }

    [ActivityData("YammerMessage")]
    public class YammerMessage
    {
        [ActivityFilter]
        [ActivityOutput]
        public string MessageType { get; set; }

        [ActivityFilter]
        [ActivityOutput]
        public string CreatedAt { get; set; }

        public Body Body { get; set; }

        [ActivityFilter]
        [ActivityOutput(Description = "Plain")]
        public string Plain
        {
            get { return Body.Plain; }
            set { Body.Plain = value; }
        }

        [ActivityFilter]
        [ActivityOutput(Description = "Parsed")]
        public string Parsed
        {
            get { return Body.Parsed; }
            set { Body.Parsed = value; }
        }

        [ActivityFilter]
        [ActivityOutput(Description = "Rich")]
        public string Rich
        {
            get { return Body.Rich; }
            set { Body.Rich = value; }
        }

        [ActivityFilter]
        [ActivityOutput]
        public int NetworkId { get; set; }

        [ActivityFilter]
        [ActivityOutput]
        public string ClientType { get; set; }

        [ActivityFilter]
        [ActivityOutput]
        public bool SystemMessage { get; set; }

        [ActivityFilter]
        [ActivityOutput]
        public string Url { get; set; }

        [ActivityFilter]
        [ActivityOutput]
        public long Id { get; set; }

        [ActivityFilter]
        [ActivityOutput]
        public long ThreadId { get; set; }

        [ActivityFilter]
        [ActivityOutput]
        public bool DirectMessage { get; set; }

        [ActivityFilter]
        [ActivityOutput]
        public string SenderType { get; set; }

        [ActivityFilter]
        [ActivityOutput]
        public long SenderId { get; set; }

        [ActivityFilter]
        [ActivityOutput]
        public long RepliedToId { get; set; }

        [ActivityFilter]
        [ActivityOutput]
        public string WebUrl { get; set; }

        [ActivityFilter]
        [ActivityOutput]
        public string Privacy { get; set; }

        public List<object> Attachments { get; set; }

        public LikedBy LikedBy { get; set; }

        [ActivityFilter]
        [ActivityOutput]
        public string ClientUrl { get; set; }
    }

    public class YammerMessages
    {
        public List<YammerMessage> Messages { get; set; }
    }
}